The invention relates to the field of computers, and more specifically to the power management of computers. Power management, and essentially power saving is becoming an important concern for computer manufacturers, inter alia for environmental reasons. It is also a concern for battery-operated computers such as laptop computers.
Another concern for computers is the remote management of computers through local area networks or wide area networks. This concern is becoming important as the existing number of networked computers increases.
FIG. 1 is a representation of the state machine of a computer of the type currently sold by the applicant under the reference HP Vectra VL8. As shown on this figure, the computer may be in five different states. In the first one 1, the computer is off and unplugged, and the power consumption is nil; in a second state 2, the computer is OFF; in this state, the power supply unit is connected to the power supply, and the computer is off. However, the LAN card of the computer is in a sleep mode, that is the LAN is not available, however, the LAN is always powered and the LAN processor in the LAN network card scans networks frames. In this state, pursuant to the German Ecolabel, the power consumption of the computer should be less than 5 W. The third state 3 is the ON state, with the computer working; power consumption is then not subject to any particular constraints. The fourth state 4 is the sleep mode, where the functionalities of the computer are degraded; in this state, the power supply unit is on, and the computer as well as its LAN card are in a sleep mode. In this fourth state, pursuant to the recommendations of the US Energy protection Agency, the power consumption should be less than 30 W. The fifth state 5 is a state where the computer is plugged in, but switched off; this state is entered when there is a power failure while the computer is connected to the wall.
The computer passes from the second state to the third state, as symbolized by arrow 6 when the ON/OFF button of the computer is activated to switch the computer on. As symbolized by arrow 7, the computer passes from the fourth statexe2x80x94sleep modexe2x80x94to the third statexe2x80x94ONxe2x80x94when the computer is woken up. This may for instance be the case when the user presses a key on the keyboard of the computer.
For computers connected to a network, it has been suggested to allow both operations to be conducted from the LAN. The corresponding functionsxe2x80x94Remote Power-On or RPO and Remote wake-up or RWU, respectivelyxe2x80x94are implemented on the computers sold by the applicant with the Hewlett-Packard NightDirector features. Remote power on is the ability to power on a PC remotely, from the OFF state; remote wake up is the ability to wake up a PC from energy saving sleep mode. These functions enable remote management applications to be carried out on remote computers. They basically involve sending a wake up or power on frame on the network; this frame is received and interpreted by the LAN card of the computer. A proprietary connector is used to connect the LAN card to the motherboard, so that RPO or RWU signals may be transmitted from the LAN card processor to the motherboard. For instance Hewlett-Packard provides on some of its personal computers a NightDirector (a trademark of Hewlett Packard Company) connector that comprises 5 RPO/RWU related pins, that is ground and power (Vccaux) pins, together with a power on pin, a wake-up pin and a RPO enable pin.
Advanced Power Management (APM) is a specification co-developed by-Intel Corporation and Microsoft Corporation, that consists of one or more layers of software that support power management in computers with power manageable hardware. APM defines the hardware independent software interface between hardware-specific power management software and an operating system power management policy driver. It masks the details of the hardware, allowing higher-level software to use APM without any knowledge of the hardware interface. The APM software interface specification defines a layered cooperative environment in which applications, operating systems, device drivers and the APM BIOS work together to reduce power consumption.
APM partitions power management functionality into a hierarchy of cooperating layers and standardizes the flow of information and control across the layers. The software components in an APM system comprise:
The APM BIOS is the software interface to the motherboard and its power managed devices and components.
The APM Interface is the interaction between the APM Driver and the APM BIOS.
The APM Driver module connects to the APM BIOS and controls power management policy. The APM Driver communicates with APM-aware Applications.
APM-aware Applications interface with the APM Driver to monitor and/or control power management.
The APM-aware Device Driver modules provide power management software interface for add-in devices. See Advanced Power Management (APM) BIOS Interface Specification, Revision 1.2 February 1996 for a full description of APM software.
OnNow is a design initiative proposed by Microsoft Corporation, as a comprehensive system-wide approach to system and device power control. OnNow relies on the ACPI interface to improve the integration of PC hardware and software, for simpler operation and greater reliability; OnNow ensures that the operating system assumes full responsibility for power management, in response to usage input from the user, applications and device drivers. OnNow is based on a standard set of detailed system power states defined by system designers and implemented by the operating system. The system states are defined in the following table:
ACPIxe2x80x94standing for Advanced Configuration and Power Interfacexe2x80x94is an open industry specification co-developed by Intel, Microsoft and Toshiba. ACPI defines a flexible and extensible interface that allows system designers to select appropriate cost/feature trade-offs for power management. The specification enables new power management technology to evolve independently in operating systems and hardware, while ensuring that they continue to work together. See Advanced Configuration and Power Management specification, Rev. 1.0 for a complete description of the structures and mechanisms necessary to design operating system directed power management and make advanced configuration architectures. Key ACPI functions, as listed in Table II, are usually implemented in a single chip called the ACPI controller; other ACPI functions may also be implemented in the ACPI controller, or may be distributed in other hardware in the computer. This table does not provide the ACPI interface components for each function, nor does it comprise the necessary resources for implementing the functions.
FIG. 2 is a schematic diagram of an ACPI controller, used as a power management control system. FIG. 2 also shows the ON/OFF controller 58, that controls the computer power supplies 59. The controller of FIG. 2 comprises a series of event registers 50 for general-purpose events. Each event register is comprised of one status bit 51 and one enable bit 52, that may be updated by the different hardware or software components of the computer, as symbolised by arrows 53 and 54 on FIG. 2.
The controller further comprises an off control register 56, that may be activated by a sleep enable bit SLP_EN, when a SLP_TYP=S4, S5 is asserted. The off control register, when activated, issues a power off request to the ON/OFF controller 58, for power down. The controller comprises a power button register 57, that is enabled by the power off request, and is activated by pressing the power button. When the power button is pressed, the power button register issues a power on request to the ON/OFF controller, for powering the computer; it also asserts a SysSCI_X signal for boot of the computer.
The power controller comprises a Sleep control 60 and a Wake control 61. The sleep control is may be activated by a sleep enable bit SLP_EN, when a SLP_TYP S3 is asserted. The sleep control then issues commands to operational elements of critical devices, for setting the computer to one of the S0 to S3 sleep states. The wake control 61 when enabled by a wake-up event of the general purpose events 50 issues commands to operational elements of critical devices for wake-up of the computer from one of the S0-S3 sleep states, as symbolised on FIG. 2 by arrows 62.
Not shown in FIG. 2 are other elements of the power management control system, such as the interrupt controller, for receiving system management interrupts, or the power management timer.
The operation of the power management control system is dictated by the contents of the different registers-general-purpose events, power off and power on. According to the contents of these registers, the control system issues commands to the different hardware of the computer for power management.
The present solution for carrying out RPO or RWU is based on APM. At the same time, the operation of the next generation technology under OnNow is also explained. Table III shows the different elements of a personal computer, seen from the point of view of power management, under APM or OnNow.
Under APM, RPO and RWU features may be implemented at bios level, since the operating system does not provide such features and allows bios differentiators. RPO under APM, when an ACPI controller is used, is now explained. The computer is assumed to be in the second state of FIG. 1, where the power supply unit is connected to the power supply, and where the LAN is powered, e.g. through by Vccaux through a LAN card cable. A remote power on frame is sent over the network, and is received on the LAN card, and interpreted by the LAN card processor. A corresponding power on signal is sent through the LAN card cable; this signal is applied to the RPO register of the ACPI controller, and the ACPI controller issues a command to the power supply unit for switching on the computer. The bios and the OS then boot.
OnNow uses the power states discussed in Table I. Since the purpose of OnNow is to ensure that the operating system has full responsibility for power management, OnNow does not include RPO features, and does not allow those features to be implemented at bios level, independently of the operating system. The switching off of a computer running OnNow is the following. When the operating system decides that the computer is to be turned off, all software accesses are first stopped; then, all switching on events of the ACPI controller are disabled, except the power button. The corresponding disabling is written in the enabling bit of all registers of the ACPI controller except the one of the power button; the computer is then switched off, by writing into the PM1_CNT register of the controller, that is by writing into the register of the controller connected to the ON/OFF controller. Writing into the PM1_CNT register causes the power supply to switch off.
Since all events of the ACPI controller except the power button are disabled before the hardware turns the machine off, the known solution of defining at bios level a remote power on event cannot be carried out in a computer running OnNow. Indeed, the corresponding event would be disabled by OnNow before the hardware is switched off.
Accordingly, there exists a need for a solution that may allow RPO functions, and especially for those computers using Windows 98 or NT5, where the power management is controlled by the operating system, and where RPO at bios level is not authorized by the operating system.
U.S. Pat. No. 5,175,853, entitled xe2x80x9cTransparent System interruptxe2x80x9d discloses a method and apparatus for providing transparent system interrupts; these interrupts are system level interrupts, that may not be relocated or overwritten by any operating system or application. They are invoked by the assertion of an electrical signal at an external pin of the CPU of a microprocessor-based chip set. This documents suggests to use these interrupts for power management functions, whereby the processor and/or other system devices may be shut down during periods of non-use and then restarted without the need to go through a power up routine.
Upon assertion of the electrical signal at the external pin of the CPU chip, the CPU maps a normally unmapped dedicated RAM area where the transparent system interrupt routine is stored as a predetermined area of the main memory space, saves the current CPU state into the dedicated RAM space, and begins execution of the transparent system interrupt routine. Recovery from the transparent system interrupt is accomplished upon recognition of an external event that invokes a xe2x80x9cresumexe2x80x9d instruction causing the CPU to be restored to exactly the same state that existed prior to the transparent system interrupt.
One example of use of the system interrupt given in this document is the following: if power to a hard drive is removed for power saving purposes, an I/O trap function is used for detecting request for access to the hard disk; a transparent interrupt routine is then generated to reapply power to the disk drive, to reinitialize it and to restore program operation at the I/O instruction.
U.S. Pat. No. 5,291,604 suggests adding one instruction to the transparent interrupt routines, for checking whether the microprocessor was interrupted or not during the halt state; this relieves the writer of the transparent system interrupt from the burden of managing halt state restart. More details on the operation of such transparent interrupt routines or system management interrupts may be found in those two documents, or in Intel 486 processor reference book.
Standard ACPI controllers actually comprise several sleep modes Sx. S1 is a sleep mode where the processor is stopped. S4 is a sleep mode where an image of the memory is copied on the hard disk, and where the processor is physically switched off. S5 is the off mode, where the processor is physically switched off. Switching on from S5 involves booting the bios, and booting the operating system. Switching on from S4 involves booting the bios, and copying the image memory from the disk. Under S5, all events of the ACPI controller except the power button are disabled; under S4, all wake up events are enabled to allow wake up of the processor. In some sleep states, such as S1, S2 or S3, the power supply is on and the main voltage Vcc is available; in some sleep states, such as S4 and S5, the power supply is switched off so that the main voltage Vcc is not available; however, an auxiliary voltage Vaux or Vtrickle is available.
Windows 95 proposes to use virtual I/O ports for simulating virtual DOS machines. The OS creates an internal task, and this task is actually supposed to be a DOS machine. I/O accesses of the DOS machine are directed to virtual access, that are redirected to the OS.
According to the invention, there is provided a process for providing remote power on in a computer having a power management control system and in which the operating system disables switching on events in the power management control system at power-down, comprising the step of invoking a system management interrupt for enabling at least a remote power on event in the power management control system, said system management interrupt being invoked at power-down after the operating system has disabled at least a remote power on event in the power management control system.
In one embodiment of the invention, said system management interrupt enables a remote power on event for a network card. The system management interrupt may also enable a remote power on event for an ON/OFF controller.
The process may preferably comprise detecting an operating system power-down action and invoking said system management interrupt in response to such detection.
In one embodiment, the operating system requests power-down by writing into a power-down event register of the power management control system, and the process comprises the step of input/output trapping said power-down event register for invoking said system management interrupt.
In another embodiment, the operating system requests power-down by writing into a power-down event register of the power management control system, and the process comprises the steps of providing the operating system with a dummy address for the power-down event register, and input/output trapping the register having said dummy address for invoking said system management interrupt, said system management interrupt writing in said power down event register after enabling at least a remote power on event.
The invention also provides a computer, comprising
a power management control system having at least a remote power-on event;
a processor having a system management interrupt for enabling at least the remote power on event;
an operating system disabling at least said remote power-on event in the power management control system at power-down said power management control system having means for invoking said system management interrupt after the remote power-on event is disabled by the operating system at power-down of the computer.
Preferebly, the system management interrupt enables a remote power on event for a network card. It may also enable a remote power on event for an ON/OFF controller
In one embodiment, the computer comprises means to detect an operating system power-down action, said means for invoking said system management interrupt being arranged to invoke said system management interrupt in response thereto.
Preferably, the power management control system has a power-down event register in which the operating system writes for requesting power-down, and the means for invoking said system management interrupt comprise an input/output trap to said power down event register.
In another embodiment, the power management control system has a power-down event register in which the operating system writes for requesting power-down, and a table of registers indicating the address of the power-down event register, and the operating system writes to the event register having said address for requesting power-down, wherein said table indicates a dummy address for the power-down event register, and wherein said means for invoking said system management interrupt comprise an input/output trap to the event register having said dummy address, said system management interrupt writing in said power down event register after enabling at least a remote power on event.